package com.zhang.warehouse.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zhang.common.dto.OrderLockStockDto;
import com.zhang.warehouse.entity.WareSku;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 仓库保存商品的信息 服务类
 * </p>
 *
 * @author 创世神
 * @since 2023-10-13
 */
public interface IWareSkuService extends IService<WareSku> {

    IPage getWareSkuListPage(Integer pageNum, Integer pageSize, Map<String, Object> wareSkuSearchDto);


    /**添加库存
     * @param skuId
     * @param wareId
     * @param stock
     * @param skuName
     */
    void addStock(Long skuId,Long wareId,Integer stock,String skuName);

    /**获取一个sku的库存
     * @param skuId
     * @return {@link Integer}
     */
    Integer getStockBySkuId(Long skuId);

    /**锁定库存
     * @param collect
     */
    void orderLockStock(List<OrderLockStockDto> collect);

    /**扣除一个sku的库存
     * @param skuId
     * @param skuQuantity
     */
    void deductStock(Long skuId, Integer skuQuantity);

    /**返还一个sku的锁定库存
     * @param skuId
     * @param skuQuantity
     */
    void returnSkuStock(Long skuId,Integer skuQuantity);
}
